package com.basic.common.quartz;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;

/**
 * 定时触发器
 * @author xumqc
 * @version v_1.0.1
 * @since 2022/07/07
 */
@Configuration
public class TriggerConfig {


//     /**
//     * 实时触发器  流量计
//     *
//     * @param
//     * @return org.springframework.scheduling.quartz.CronTriggerFactoryBean
//     * @author xumqc
//     * @date 13:50 2022/07/07
//     **/
//    @Bean(name = "syncExpireHzFlowTrigger")
//    public CronTriggerFactoryBean syncExpireHzFlowTrigger(JobDetail syncExpireHzFlow) {
//        CronTriggerFactoryBean trigger = new CronTriggerFactoryBean();
//        trigger.setJobDetail(syncExpireHzFlow);
//        // cron表达式 每分种 0 */1 * * * ?  每天凌晨1点执行一次：0 0 1 * * ? 每小时 执行一次 0 0 0/1 * * ?
//        trigger.setCronExpression("0 */5 * * * ?");
//        return trigger;
//    }
//
//    /**
//     * 实时触发器  流量计
//     *
//     * @param
//     * @return org.springframework.scheduling.quartz.CronTriggerFactoryBean
//     * @author xumqc
//     * @date 13:50 2022/07/07
//     **/
//    @Bean(name = "syncExpireHourFlowTrigger")
//    public CronTriggerFactoryBean syncExpireHourFlowTrigger(JobDetail syncExpireHourFlow) {
//        CronTriggerFactoryBean trigger = new CronTriggerFactoryBean();
//        trigger.setJobDetail(syncExpireHourFlow);
//        // cron表达式 每分种 0 */1 * * * ?  每天凌晨1点执行一次：0 0 1 * * ?
//        trigger.setCronExpression("0 0 0/1 * * ?");
//        return trigger;
//    }
//
//    /**
//     * 实时触发器  压力表
//     *
//     * @param
//     * @return org.springframework.scheduling.quartz.CronTriggerFactoryBean
//     * @author xumqc
//     * @date 13:50 2022/07/07
//     **/
//    @Bean(name = "syncExpirePlowTrigger")
//    public CronTriggerFactoryBean syncExpirePlowTrigger(JobDetail syncExpireCommonPlow) {
//        CronTriggerFactoryBean trigger = new CronTriggerFactoryBean();
//        trigger.setJobDetail(syncExpireCommonPlow);
//        // cron表达式 每分种 0 */1 * * * ?  每天凌晨1点执行一次：0 0 1 * * ?   0 */10 * * * ?     两小时执行一次 0 0 0/2 * * ?
//        trigger.setCronExpression("0 */5 * * * ?");
//        return trigger;
//    }
//
//    /**
//     * 实时触发器  压力表
//     *
//     * @param
//     * @return org.springframework.scheduling.quartz.CronTriggerFactoryBean
//     * @author xumqc
//     * @date 13:50 2022/07/07
//     **/
//    @Bean(name = "syncExpireHourPlowTrigger")
//    public CronTriggerFactoryBean syncExpireHourPlowTrigger(JobDetail syncExpireCommonHourPlow) {
//        CronTriggerFactoryBean trigger = new CronTriggerFactoryBean();
//        trigger.setJobDetail(syncExpireCommonHourPlow);
//        // cron表达式 每分种 0 */1 * * * ?  每天凌晨1点执行一次：0 0 1 * * ?   0 */10 * * * ?     两小时执行一次 0 0 0/2 * * ?
//        trigger.setCronExpression("0 0 0/1 * * ?");
//        return trigger;
//    }
//
//
//
//    /**
//     *  时间分段 的触发器
//     *
//     * @param
//     * @return org.springframework.scheduling.quartz.CronTriggerFactoryBean
//     * @author xumqc
//     * @date 13:50 2022/07/07
//     **/
//    @Bean(name = "syncExpireHzFlowSegmentTrigger")
//    public CronTriggerFactoryBean syncExpireHzFlowSegmentTrigger(JobDetail syncExpireHzFlowSegment) {
//        CronTriggerFactoryBean trigger = new CronTriggerFactoryBean();
//        trigger.setJobDetail(syncExpireHzFlowSegment);
//        // cron表达式  每一小时执行一次 0 0 */1 * * ?
//        trigger.setCronExpression("0 0/5 * * * ?");
//        return trigger;
//    }
//
//    /**
//     *  换表 的触发器
//     *
//     * @param
//     * @return org.springframework.scheduling.quartz.CronTriggerFactoryBean
//     * @author xumqc
//     * @date 13:50 2022/07/07
//     **/
//    @Bean(name = "syncExpireHzChangeMeterInfoDataTrigger")
//    public CronTriggerFactoryBean syncExpireHzChangeMeterInfoDataTrigger(JobDetail syncExpireHzChangeMeterInfo) {
//        CronTriggerFactoryBean trigger = new CronTriggerFactoryBean();
//        trigger.setJobDetail(syncExpireHzChangeMeterInfo);
//        // cron表达式  每一小时执行一次 0 0 */1 * * ?
//        trigger.setCronExpression("0 0/5 * * * ?");
//        return trigger;
//    }



    /**
     * 配置Scheduler
     *
     * @param
     * @return org.springframework.scheduling.quartz.SchedulerFactoryBean
     * @author xumqc
     * @since 2022/7/07 18:25
     */

    @Bean(name = "scheduler")
    public SchedulerFactoryBean schedulerFactory(
//            Trigger syncExpireHzFlowTrigger
//            Trigger syncExpireHourFlowTrigger
//            Trigger syncExpirePlowTrigger
//           Trigger  syncExpireHourPlowTrigger
            //Trigger syncExpireHzFlowSegmentTrigger,
//            Trigger syncExpireHzChangeMeterInfoDataTrigger

    ) {
        SchedulerFactoryBean bean = new SchedulerFactoryBean();
        // 延时启动，应用启动1秒后
        bean.setStartupDelay(2);
        // 注册触发器
        bean.setTriggers(
//                syncExpireHzFlowTrigger
//                syncExpireHourFlowTrigger
//                syncExpirePlowTrigger
//                syncExpireHourPlowTrigger
                //syncExpireHzFlowSegmentTrigger
//                syncExpireHzChangeMeterInfoDataTrigger

        );
        return bean;
    }
}
